#include<iostream>
using namespace std;

const int N = 1e6 + 10;

int n;
int a[N];

int quickSort(int a[],int l,int r){
    if(l >= r) return 0 ;   //判断边界
    
    int x = a[l + r >> 1], i = l - 1, j = r + 1;    //注意移位操作
    while(i < j){
        do i ++ ; while(x > a[i]);
        do j -- ; while(x < a[j]);
        if(i < j)   swap(a[i], a[j]);
    }

    quickSort(a, l, j);
    quickSort(a, j+1, r);

}

int main(){
    scanf("%d", &n);
    for(int i = 0; i < n; i++)      scanf("%d", &a[i]);

    quickSort(a, 0, n - 1);

    for(int i = 0; i < n; i++)      printf("%d ", a[i]);
    
    return 0;
}
